breadth first search explanation